/*
1:安装axios
2:导入axios
3:创建axios副本，设置基地址
4:配制请求拦截与响应拦截
5:导出axios副本
6：api/xxx.js导入request.js定义api测试接口
*/

import axios from 'axios'
import { Message } from 'element-ui'
import store from '@/store' // store===this.$store
import router from '@/router'
const _axios = axios.create({
  baseURL: 'http://interview-api-t.itheima.net/',
  timeout: 5000 // 超时时间
})
_axios.interceptors.request.use(
  config => {
    // 统一请求头添加
    const token = store.state.token
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
_axios.interceptors.response.use(
  res => {
    return res.data
  },
  error => {
    if (error.response) {
      // 提示错误信息
      Message.error(error.response.data.message)
      // 发现401错误
      // 删除token  跳转到登陆页
      if (error.response.data.code === 401) {
        store.commit('logout')
        router.push('/login')
      }
      console.log(error)
    }
    return Promise.reject(error)
  }
)
export default _axios
